#ifndef _PERMUTATION_H
#define _PERMUTATION_H

#include <iostream>

template <typename T>
void GetPermutation(T arr[],int begin,int n)
{
    if(n==1)
    {
        for(int i=0;i<begin+n;i++)
            std::cout<<arr[i]<<"\t";
        std::cout<<"\n";
    }
    for(int i=begin;i<begin+n;i++)
    {
        T temp=arr[i];
        arr[i]=arr[begin];
        arr[begin]=temp;
        GetPermutation(arr,begin+1,n-1);
        temp=arr[i];
        arr[i]=arr[begin];
        arr[begin]=temp;
    }
}

#endif